package com.example.common.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@Configuration
public class SwaggerConfig implements WebMvcConfigurer {
    
    /**
     * 公共API分组，匹配所有路径
     */
    @Bean
    public GroupedOpenApi publicApi() {
        return GroupedOpenApi.builder()
                   .group("public")
                   .pathsToMatch("/**")
                   .build();
    }
    
    /**
     * 管理员API分组，只匹配/admin开头的路径
     */
    @Bean
    public GroupedOpenApi adminApi() {
        return GroupedOpenApi.builder()
                   .group("admin")
                   .pathsToMatch("/admin/**")
                   .build();
    }
    
    /**
     * OpenAPI基本信息配置
     */
    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                   .info(new Info()
                             .title("Spring Boot")                      // API标题
                             .version("1.0")                            // 版本号
                             .description("")                           // 描述
                             .contact(new Contact()                     // 联系人信息
                                          .name("name")
                                          .email("email@example.com")
                                          .url("https://example.com")));
    }
}
